r_core_sources = [
  'anal_tp.c',
  'anal_objc.c',
  'casm.c',
  'cproject.c',
  'blaze.c',
  'clist.c',
  'citem.c',
  'canal.c',
  'carg.c',
  'cbin.c',
  'cmd_print_list.c',
  'cconfig.c',
  'cio.c',
  'core_esil.c',
  'cmd.c',
  'cmd_api.c',
  'core.c',
  'cundo.c',
  'disasm.c',
  'cfile.c',
  'fortune.c',
  'gdiff.c',
  'zdiff.c',
  'agraph.c',
  'libs.c',
  #'dmh_glibc.c',
  #'dmh_jemalloc.c',
  #'dmh_macos.c',
  #'dmh_windows.c',
  'corelog.c',
  'panels.c',
  'patch.c',
  'cplugin.c',
  'project.c',
  'pseudo.c',
  'rtr.c',
  'task.c',
  'vasm.c',
  'visual.c',
  'vslides.c',
  'vmarks.c',
  'vmenus.c',
  'vmenus_graph.c',
  'vmenus_zigns.c',
  'yank.c',
  'p/core_agD.c',
  'p/core_a2f.c',
  'p/core_sixref.c',
  'p/core_java.c'
]

r_core_inc = []
r_core_inc = [platform_inc, include_directories(r_core_inc)]

r_core_deps = [
  r_util_dep,
  r_reg_dep,
  r_syscall_dep,
  r_search_dep,
  r_arch_dep,
  r_esil_dep,
  r_cons_dep,
  r_anal_dep,
  r_socket_dep,
  r_io_dep,
  r_fs_dep,
  r_lang_dep,
  r_magic_dep,
  r_flag_dep,
  r_egg_dep,
  r_debug_dep,
  r_crypto_dep,
  r_config_dep,
  r_bin_dep,
  r_asm_dep,
  r_bp_dep,
  platform_deps,
  gdb_dep,
  java_dep,
  lrt
]

if use_libuv
  r_core_deps += libuv_dep
endif

r_core = library('r_core', r_core_sources,
  include_directories: r_core_inc,
  c_args: library_cflags,
  dependencies: r_core_deps,
  install: true,
  implicit_include_directories: false,
  install_rpath: rpath_lib,
  soversion: r2_libversion
)

r_core_dep = declare_dependency(link_with: r_core, include_directories: r_core_inc)

if get_option('blob')

r_core_static_deps = [
  gdb_static_dep,
  java_static_dep,
  lrt,
  platform_deps,
  r_anal_static_dep,
  r_arch_static_dep,
  r_asm_static_dep,
  r_bin_static_dep,
  r_bp_static_dep,
  r_config_static_dep,
  r_cons_static_dep,
  r_crypto_static_dep,
  r_debug_static_dep,
  r_egg_static_dep,
  r_esil_static_dep,
  r_flag_static_dep,
  r_fs_static_dep,
  r_io_static_dep,
  r_lang_static_dep,
  r_magic_static_dep,
  r_reg_static_dep,
  r_search_static_dep,
  r_socket_static_dep,
  r_syscall_static_dep,
  r_util_static_dep,
]
r_core_static = static_library('r_core_static', r_core_sources,
  include_directories: r_core_inc,
  c_args: library_cflags,
  dependencies: r_core_static_deps,
  install: true,
  implicit_include_directories: false,
)
r_core_static_dep = declare_dependency(link_with: r_core_static,
  include_directories: r_core_inc)
endif

pkgconfig_mod.generate(
  r_core,
  subdirs: 'libr',
  version: r2_version,
  name: 'r_core',
  filebase: 'r_core',
  libraries: pkgcfg_sanitize_libs,
  requires: pkgconfig_magic_requires + [
    'r_anal',
    'r_arch',
    'r_asm',
    'r_bin',
    'r_bp',
    'r_config',
    'r_cons',
    'r_crypto',
    'r_debug',
    'r_egg',
    'r_esil',
    'r_flag',
    'r_fs',
    'r_io',
    'r_lang',
    'r_reg',
    'r_search',
    'r_socket',
    'r_syscall',
    'r_util',
  ],
  description: 'radare foundation libraries'
)
